package com.niuwa.p2p.service.redenvelope;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import com.niuwa.p2p.core.mvc.entity.PageBean;
import com.niuwa.p2p.entity.Dictionary;
import com.niuwa.p2p.entity.redenvelope.RedEnvelope;
import com.niuwa.p2p.vo.front.account.RedEnvelopeVo;
import com.niuwa.p2p.vo.front.product.FrontRedEnvelopeVo;

/**
 * 红包管理
 * @title IRedEnvelopeService.java
 *
 * @author LIJIAN
 * @version 1.0
 * @created 2015年4月10日
 */
public interface IRedEnvelopeService {
	
	
	 /**
     * 查询所有待审核红包不分页
     * @param paramMap
     * @return
     */
	 List<RedEnvelope> searchAllRedEnvelopeList(Map<String,Object> paramMap);
	
	
	 /**
     * 查询红包列表
     * @param paramMap
     * @return
     */
	PageBean<RedEnvelope> searchRedEnvelopeList(Map<String,Object> paramMap);
	
	/**
     * 查询说有用户名字
     * @param paramMap
     * @return
     */
	List<String>  searchAllCustName();
	
	/**
     * 一键审核或一键拒绝
     * @param paramMap
     * @return
     */
	public void updateRedEnvelope(Map<String,Object> paramMap) throws ParseException;
	
	/**
     * 红包批量插入
     * @param List<JSONObject>
     * @return
     */
	
	public void insertRedEnvelopeBatch(List<JSONObject> paramList) throws ParseException;
	
	 /**
     * 红包管理[web]
     * @param paramMap
     * @return
     */
    List<RedEnvelopeVo> selectRedEnvelopeBySelectiveListPage(Map<String,Object> paramMap);
    
    /**
     * 根据兑换码获取红包信息[web]
     * @param exchangeNo 兑换码
     * @return
     */
    RedEnvelope selectByExchangeNo(String exchangeNo);
    
    /***
     * 绑定红包所属用户[web]
     * @param paramMap
     * @return
     */
    int bindRedEnvelopeCust(RedEnvelope record);
    
    /**
     * 获取红包个数[web]
     * @param paramMap
     * @return
     */
    Map<String, Object> selectRedEnvelopeCountBySelective(Map<String,Object> paramMap);
    
	/**
	 * 根据红包信息相关字典【web】
	 * @return
	 */
	public Map<String, List<Dictionary>> getRedEnvelopeDict() throws Exception;
    
    /**
     * @Description: 获取用户所有可用的红包
     * add by bwz at 2015年4月10日
     * @param paramMap
     * @return
     */
    List<FrontRedEnvelopeVo> selectAllRedEnve4Customer(Map<String,Object> paramMap);
}
